import pymysql

from config.settings import DB_CONFIG


class MysqlUtil:
    def __init__(self):
        # 连接数据库--- 创建链接对象
        # 从 config 目录 下的 settings.py 文件中，将 DB_CONFIG 这个配置信息给导入过来
        self.db = pymysql.connect(
            **DB_CONFIG
        )

        # 操作sql 语句 --- 需要一个游标对象 --- 选择字典类型游标
        self.cursor = self.db.cursor(pymysql.cursors.DictCursor)

    def sql_execute(self, sql):
        try:
            self.cursor.execute(sql)
            self.db.commit()
        except:
            print('执行有问题')
            self.db.rollback()
            return False
        else:
            # print('执行ok')
            pass
    # 调用方法 查看 记录
    def get_fetchone(self, sql):
        self.sql_execute(sql)
        return self.cursor.fetchone()        # 查看一条记录

    def get_fetchall(self, sql):
        self.sql_execute(sql)
        return self.cursor.fetchall()       # 查看剩余所有记录

    def close(self):
        # 记得 关闭 游标， 关闭数据库 连接
        self.cursor.close()
        self.db.close()


if __name__ == '__main__':
    # 真正运行代码，是在 main 语句里
    # 写得 ok不ok, 要运行看看
    mysql = MysqlUtil()
    # mysql.sql_execute("select * from jwtest_case_list;")
    # print(mysql.get_fetchall("select * from jwtest_case_list;"))

    # 写入表格的操作 ，验证一下
    res3 = mysql.sql_execute("insert into jwtest_result_record (case_id,result) values ('9999','测试通过');")